今日文章目錄
- 需求說明
- 事前準備
- 參考資料
<form action="submit" id="toDoForm">
<input id="inputValue" placeholder="請輸入待辦事項..."/>
<button type="submit" class="addBtn">ADD TO LIST</button>
</form>
ul
: 全部、完成、未完成<div class="contentGroup">
<div class="content content1">
<div class="detail">
<h2 class="subTitle">待完成任務:0,已完成任務:0</h2>
<ol class="toDoList">
</ol>
</div>
</div>
<div class="content content2">
<div class="detail">
<h2 class="subTitle">待完成任務:0</h2>
<ol class="unfinishToDoList">
</ol>
</div>
</div>
<div class="content content3">
<div class="detail">
<h2 class="subTitle">已完成任務:0</h2>
<ol class="finishedToDoList">
</ol>
</div>
</div>
</div>
submit
: submit
監聽事件會在form element送出時觸發。單純使用input
或button
無效。
submit
的默認行動是傳送表單內容至伺服器
。以目前練習項目來說不需要,故在執行新增前,需停止默認行動
event.preventDefault(); // 停止默認行動,但不會影響事件的傳遞。
cloneNode(boolean)
: 複製節點,預設boolean為false,進行淺拷貝(第一層);當boolean為true,進行深拷貝(所有子層)。
innerHTML
: 替換指定節點內容,原本節點內的內容不會保留,會整個被覆蓋。(如果要保留原本內容,可以使用insertAdjacentHTML(position, text)
textContent
: 替換指定text node內容,原本text node內的內容不會保留,會整個被覆蓋。
previousElementSibling
: 選取指定節點的前一個同層節點
。
hasChildNodes()
: 回傳布林值。指定節點內,是否有子節點。
目前 codepen 練習:https://codepen.io/chen-chens/pen/NWgjVez?editors=0010
顯示效果:
li
分別append
到 全部分類ul
與 未完成分類ul
時,只有最後一個append有效果。li
,所以只能帶入一個ul
,不能同時給多個ul
。li
的動作另外包成function,並在個別ul
append時呼叫function。li
)deleteBtn
加入監聽明日預告: